home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 22
/
Aminet 22 (1997)(GTI - Schatztruhe)[!][Dec 1997].iso
/
Aminet
/
util
/
misc
/
hcmenu.lha
/
HCMenu
/
Doc
/
Nederlands
/
HCMenu.Doc
next >
Wrap
Text File
|
1997-10-14
|
18KB
|
409 lines
Onderwerp: Haute-Cuisine Menu V1.8
Door: E. Th. van den Oosterkamp.
AssembleDate: 10-Apr-95
SysteemEisen: Geen. Menu houdt rekening met KickStart versies.
Introductie.
============
Het HCMenu is een interactief menu, dat vooral bedoeld is om programma's
snel en gemakkelijk op te kunnen starten. Ik gebruik dit menu sinds oktober
1992 en sindsdien is er erg veel verbeterd (zeg ik zelf).
Ik gebruik dit menu omdat ik de Workbench van Commodore niet kan waarderen.
Nu onder versie 2.0 is hij erg vooruit gegaan, maar ik vind een menu nog
steeds stukken handiger (zeg ik alweer zelf).
Nu ken ik mensen die zweren bij een keymap (jeweetwel F1 - ASM-ONE, F2 -
DeluxePaint , F3 - ....) maar daarvoor kocht ik geen Amiga (NOT!).
Ondanks de systeem eisen is het menu eerder ontworpen voor KS2.0 (en hoger).
Ik ondersteun de lagere Kickstarts alleen maar zodat disks waar iemand het
HCMenu op heeft geinstalleerd ook bij die gebruikers werken met een oude KS.
Een aantal (minder belangrijke) functies zullen onder KS1.3/1.2 niet werken.
Beschrijving.
=============
Het HCMenu gebruikt een zgn "menufile". Dit is niets anders dan een
tekstfiletje waarin de namen van de gebruikte items staan en dan sequences
van verschillende commando's behorende bij dat item. Het is ook mogelijk
om vanuit een menu een volgend menu op te roepen. Een soort van submenu dus
maar de gehele hiearchie is zelf te bepalen, dus je zou ook een menu
"omhoog" kunnen gaan.
Het menu kent ook een soort snapshot functie. Allerlei handige zaken
(coordinaten, startmenu, indeling) worden weggeschreven in een (binaire)
file. Bij het opstarten wordt deze ingeladen en het menu juist ingesteld.
De Menu-File.
=============
Omdat het menu in eerste instantie alleen voor eigen gebruik was bedoeld, heb
ik geen scripttaal ontworpen, maar steekt een menufile simpel in elkaar
(zoals ikzelf...). Natuurlijk verkleint hierdoor de controleerbaarheid voor
mijn menu, maar een menufile is nu niet groter dan nodig.
Om het maar in een keer te zeggen: Eerst komen regel voor regel alle
itemnamen in de file. Deze namen komen gecentreerd in het item te staan,
zodat de gebruiker weet wat het item zal gaan doen (mits logische namen
gekozen.....) Dan komt op een regel het procent (%) teken. Dit betenkend
niets meer dan: "einde namen, begin commando's". Hierna komen IN DEZELFDE
VOLGORDE!! de opdrachten die bij de items horen.
Een voorbeeldje:
----------------------------------------------------------------------------
ToolMenu
ASM-One
DPaint
DirOpus
GamesMenu
Niets
MenuEdit
%
@dh1:tools/tool.menu
dh1:assembler/asm-one
run dh1:grafiek/dpaint ;cd dh1:iff
dh1:tools/diropus
@dh1:games/games.menu
run ed s:main.menu
----------------------------------------------------------------------------
Nu is staan er in het bovenstaande voorbeeldje enkele speciale karakters. Ik
bedoel de "@" en de ";". De ";" werkt als een "command-separator" oftwel een
commando scheider. Zo kun je met een item (na elkaar) verschillende
opdrachten geven, zoals in dit geval het opzoeken van een directory.
Het karakter "@" betekent dat er een submenu dient te worden nageladen, en
de filenaam van het menu volgt direct op het apestaartje. Het gebruik van
een command seperator heeft hier natuurlijk geen zin.
Het is mogelijk om een item leeg te houden. Dan moet gewoon de regel van
de itemnaam worden leeg gehouden. Bij de uit te voeren commando's hoeft
hier geen rekening mee te worden gehouden. Er hoeft voor dit niet gebruikte
item geen lege ruimte te worden aangebracht. Let er wel op dat de lege
regel echt leeg is en er geen verloren spatie of tab staat.
Ook kan in een item een tekst worden geplaats zonder dat het item enige
functie heeft. Zet in dit geval (zoals bij het "Niets" item) een lege
regel bij de opdrachten. Ook hier oppassen voor spaties en tabs.
Enkele regels voor de Menufile:
- Altijd maar een ding op een regel. item-naam/zoekpad/commando's etc.
- Een spatie voor of na een itemnaam zorgt ervoor dat deze niet mooi wordt
gecentreerd omdat de spatie gewoon als deel van de naam meedoet. Alles wat
op die regel staat wordt de itemnaam. Zorg zelf dat de naam ook werkelijk
in het item past.
- Zoekpaden, commando's en speciale tekens MOETEN op de 1e plaats van een
regel staan (behalve ";" natuurlijk). Dit geldt ook voor de zoekpaden en
namen van de op te starten commando's.
NB: Mocht dit bovenstaande toch te lastig zijn, dan verwijs ik naar de
HCMenuEditor, een programma dat bedoeld is om interactief een menu
samen te stellen. Helaas heeft de gebruiker dan wel KS2.0 of een
hogere versie van het besturingssysteem nodig.
Menu functies.
==============
Het klink waarschijnlijk erg raar, maar het menu heeft een menu. Ik doel
hierbij op een menubalk bovenaan het scherm. Ik ga nu een voor een de
menuitems langs in de volgorde zoals ze staan.
het project menu.
- Open Menu - Opent een ReqTools filerequester waarmee de gelukkige
gebruiker een menufile kan selecteren.
- Edit Menu - Door deze optie te selecteren zal het menu de editor op-
starten met de actuele menufile. Met de optie "Prefs"
uit het Prefs menu kan de editor worden ingesteld.
Default is "Ed".
- NewShell - Opent een shell window.
- Load Snapshot - Inladen van eerder gemaakte instellingen. Er zijn drie
mogenlijkheden: General, Local en Default. De laatste
zal de standaard instellingen activeren. Met "Local"
en "General" zijn gebruikers instellingen te activeren.
Hierover meer in de volgende paragraaf.
- Save Snapshot - Het Opslaan van instellingen. Hier zijn maar twee mogelijk-
heden nl "General" en "Local". Voor een uitgebreidere
uitleg: zie volgende paragraaf.
- About - Informatie over het programma, de copyrights e.d.
- Quit - Het menu sluit en al het geheugen zal worden vrijgegeven.
Dit kan ook met het close gadget.
het prefs menu.
- NoClick - Deze functie kan alleen onder Kickstart2.0 of hoger
worden geselecteerd. Hij schakelt het klikken van alle
drives aan/uit. Dit vertraagt wel het "happen" van een
nieuwe diskette maar daar leef ik liever mee dan dat
ergerlijke geklepper.
- '*'=WildCard - Ook deze functie werkt alleen onder kickstart2.0 en
hoger. Bij het gebruik van Shell of CLI (en ook bij
sommige filerequesters) kan de gebruiker jokers gebruiken
voor het specificeren van bepaalde files in een directory.
Normaalgesproken wordt bijvoorbeeld "#?.info" gebruikt om
alle files eindigend op ".info" te specificeren.
Met deze optie kan de gebruiker "#?" vervangen voor het
sterretje ("*") zoals dit in de MS-DOS wereld gebruikelijk
is. Deze optie geldt voor de GEHELE computer, en niet
alleen voor het HCMenu.
- Border - Dit is een kwestie van smaak. Wilt u een 3D-look
vierkantje rond de items of liever niet? Bij sommige
kleurinstellingen (WB 2.0) prachtig, bij andere minder.
De "lichtval" komt altijd van linksboven. Hoe de kleuren
ook gekozen worden.
- Warnings - Wanneer deze optie niet is afgevinkt worden de ver-
schillende waarschuwingen van het HCMenu onderdrukt. Deze
waarschuwingen verschijnen altijd als requester. Een
voorbeeld van een waarschuwing is het "Are you sure?"
requester bij het schrijven van de general snapshot.
- Blanker - Het in of uitgeschakeld zijn van de screenblanker. Wanneer
er geen filenaam is gekozen in het "Prefs" window, dan
wordt automatisch de interne screenblanker gebruikt.
- SelectBar - De selectbar is een balk die met de cursortoetsen kan
worden bediend. Met de balk is een bepaald item te
selecteren. Met <enter> wordt het geselecteerde item
geactiveerd. Eventuele "invisible" items oefenen in-
vloed uit op de selectorbalk!
- Alt + Esc - Door een druk op een van beide <Alt> toetsen samen met de
<Esc> toets, activeert het menu. Tijdens de activering
zal het window bovenop komen te liggen, en zal de work-
bench naar voren komen.
- WinBarInfo - In de schermbalk wordt de tijd weergegeven samen met wat
informatie over de hoeveelheid vrij geheugen. Met deze
optie kan worden gekozen of deze informatie ook in de
WindowBalk moet worden getoond of niet.
- Local Snap - Met deze instelling kan worden gekozen of het HCMenu ook
gebruik moet maken van locale instellingen. Als deze
functie niet is afgevinkt wordt alleen de general snap
gebruikt. Meer hierover in de volgende paragraaf.
- DoubleClick - Met deze optie kan de gebruiker instellen of het menu op
dubbelklik moet reageren of ook op een enkeleklik.
- Colors - In dit menu drie verschillende vooringestelde kleuren.
Een bevat de WorkBench 1.3 kleuren. De tweede de WB 2.0
kleuren. En de derde is makkelijk voor het maken van
hardcopys van het scherm (alles grijstinten met een witte
achtergrond).
De vierde optie in dit menu reset de kleuren zoals ze
waren tijdens het opstarten. Dit komt soms van pas omdat
zommige programma's ongevraagt de kleuren verschnjieren
en zo de "schade" kan worden hersteld.
Deze opties reageren alleen voor de eerste vier kleuren!
- Prefs - Roep het instellingen window op. Hiermee zijn het aantal
items per regel te selecteren en de gewenste breedte
van het window. Minimale breedte is 67, de maximale ligt
aan de scherm resolutie.
Omdat het oog ook wat wil is het voor de items gebruikte
font te selecteren. Wanneer u beschikt over de al eerder
genoemde ReqTools.library zelfs via een font-requester.
In dit window wordt ook de screenblanker ingesteld (zie
onder). De tijd is instelbaar tussen 1 en 9 minuten. In
het geval van een eigen "effect" kan er een file en
padnaam worden ingesteld. Worden deze foutief ingevoerd,
dan meldt het menu dit na selectie van "Okay".
Als laatste optie is er de naam van het Log-file. Hierin
worden de door het menu ondernomen acties bewaard. Een
voorbeeld is RAM:Menu.Log.
De verschillende SnapShot's
===========================
Zoals in de vorige paragraaf al duidelijk werd gebruikt het menu twee
manieren om instellingen op te slaan.
De eerste manier is de "General" of ook "algemene" snapshot. Hier bestaat
er maar een van, en deze geldt voor alle menu's. Algemene instellingen over
de screenblanker en de gewenste editor e.d. worden hier opgeslagen.
Wanneer de functie "Local Snap" in het prefs-menu is geselecteerd is er
ook een tweede manier.
De tweede manier is de "Local" snapshot, oftewel de plaatselijke snap-
shot. Hiervan kunnen er evenveel zijn als dat er menu's zijn en bevatten
instellingen voor een specifiek menu. Hierdoor zijn instellingen als het
aantal items per regel en windowposities per menu anders in te stellen.
Mocht er voor een menu geen plaatselijke snapshot bestaan, dan wordt de
informatie gewoon uit de "General" snapshot gehaald.
Mocht deze ook niet bestaan dan komt de informatie uit de "Default".
De "General" Snapshot.
----------------------
De algemene snapshot wordt in de ENVARC: directory opgeslagen. Dit is de
standaard directory van kickstart 2.0 (en hoger). De gebruiker van kick 1.3
moet dus met een Assign in de StartUp-Sequence zorgen dat ENVARC: bestaat.
Het filetje heet "HCMenu.prefs" en is een binaire file (pruts hier dus
NOOIT in met een tekst editor o.i.d.!!!). Wanneer de file niet wordt gevonden
gebruikt het menu de defaults. Op het ogenblik, zijn dat:
Menu: S:Main.Menu
Items: 1 per regel.
Breedte: 128 pixels.
x/y coord: x = 0 en y = 11.
Zip coord: x = 0 en y = 0.
Prefs: Drives stil aan
'*'=WildCard uit
Borders aan
Warnings aan
ScreenBlanker uit
SelectorBar aan
Alt+Escape aan
WinBalkInfo uit
Local Snap uit
DoubleClick uit
BlankTijd: 5 minuten.
BlankFile: (geen).
LogFile: (geen).
Editor: Ed
FontNaam: Topaz
Fonthoogte: 8
SubMenuKleur: 1
ItemKleur: 1
Nu is ook weergegeven wat er allemaal wordt bewaard in de snapshot
file. De snapshot file wordt d.m.v. van een checksum beveiligd. Wanneer
deze checksum niet klopt zal er een requester verschijnen. Door te kiezen
voor de defaults speel je op safe.
Helaas kunnen op die manier de favoriete instellingen verloren gaan. Door
toch de ingeladen instellingen te gebruiken kan de computer vastlopen.
Meestal gebeurt dit niet en kan de snapshot opniew worden weggeschreven
(Checksum wordt weer opnieuw berekend!).
De "Local" SnapShot
-------------------
De plaatselijke snapshot van een menu wordt altijd in dezelfde directory
geschreven als het menu staat. De snapshot draagt ook dezelfde naam, maar
is aangevuld met de extensie ".snap".
Ook deze file is binair, doch niet beveiligd middels een checksum.
De volgende instellingen worden opgeslagen: De menuposities, de menu-
afmetingen, het aantal items per regel en de kleurnummers van de items
en de submenu's.
ScreenBlanker.
==============
Ik had het er zojuist al over. Een screenblanker is een programma dat de
invoer van de gebruiker bekijkt. Is er na de ingestelde tijd nog geen
invoer geweest, dan wordt het scherm zwart, of er komt een of ander effect.
Dit omdat een tekst als deze in het scherm inbrandt als het een lange tijd
zonder te bewegen op het scherm staat. Door het scherm zwart te maken wordt
inbranden voorkomen en gaat de monitor stukken langer mee. (...)
De screenblanker van het menu "kijkt" naar de muis en naar het toetsenbord.
Om de gebruiker niet te laten schrikken toont de blanker een bewegend
blauw balkje (blauw is te zwak om in te branden). Door de invoer te
hervatten (muis of toetsen) zal het normale scherm terug komen.
Voor de programmeurs onder de gebruikers is het mogelijk om zelf een effect
te programmeren. Zodra er namelijk een filenaam achter "effect" wordt
ingetikt zal het menu deze file inladen en als de tijd daar is opstarten
ipv zelf het scherm zwart te maken. Om de filenaam te verwijderen en zo de
interne blanker terug te krijgen kan het makkelijkst op de filenaam worden
geklikt (cursor verschijnt er) en dan RechterAmiga-X ingetoets worden.
Richtlijnen voor een zelfgemaakt effect:
- Bij opstarten moet het effect meteen beginnen.
- Probeer het effect ook bij hervatte invoer te laten verdwijnen.
Een simpele muisdruk is echt niet voldoende.
- Laat andere tasks ook wat processortijd.
- De code *MOET* re-intrant zijn. (Tijdens het opstarten wordt de
externe blanker al ingeladen en later herhaald opgestart).
WAARSCHUWING: gecrunchde code is dat *niet*.
De instelbare tijd wordt steeds exacter naarmate deze groter wordt. Het
menu controleert alleen op minuten: tussen 12:10:55 en 12:11:01 zit voor
het menu precies een minuut. (Het komt ook niet zo nauw met de tijd).
De externe blanker wordt ingeladen m.b.v. LOADSEG. Wordt de externe blanker
niet gevonden, dan wordt de interne gebruikt.
Iedere keer dat de blanker nodig is, wordt deze met CREATEPROC opgestart.
Wanneer een andere blanker wordt gekozen, of de blanker wordt uitgeschakeld
dan wordt alle geheugen met UNLOADSEG vrijgegeven.
History.
========
Hier nog even de geschiedenis van het menu in vogelvlucht. Zo is ook een
korte impressie te krijgen van wat er zoal aan is verspijkerd in de tijd.
Nieuw im 1.8:
- Twee verschillende snapshots: General en Local.
- Borders rond gadgets in prefs window.
- WildStar+DoubleClick+WinBarInfo in PrefsMenu.
1.7 - Font instelbaar. KS2.0 Zoomgadget ipv sleepGadGet.
1.6 - SelecteerBalk. Alt+Escape. KS3.0 compatible kleurreset.
1.5 - Het prefsmenu is geboren. General snapshot. ScreenBlanker.
1.4 - Menu ligt beheerst boven. Code erg geoptimaliseerd.
1.3 - Aanpassingen voor KS2.0. Gebruik van shell ipv de CLI.
1.2 - SubMenus. Kleur resetten.
1.1 - CLI-detach routine. Lightbron van linksboven voor de items.
1.0 - 6 Gadgets in een rij in een 640 pixels window.
DankWoord.
==========
Hierbij wil ik M. de Reuver danken voor het melden van bugs en verbeteringen
voor het HCMenu. Door zijn opmerkingen was het voor mij mogelijk om het
menu op sommige plaatsen gebruikersvriendelijker te maken.
Ook dank ik de heer M. van Aalten voor enkele ideen over hoe een menu
zou moeten werken.
Enkele aanwijzingen van de heer M. Blomsma sneden ook hout en ik dank hem
dan ook voor zijn wijze woorden...
Verder zou ik vanaf deze plaats de mensen willen bedanken die meegewerkt
hebben aan de ontwikkeling van de tools MungWall en Enforcer. Dankzij deze
twee debugging tools zijjn er een aantal vuiligheidjes verdwenen waardoor
het HCMenu een stabiele aplicatie is geworden.
Blablabla.
==========
Alle menu versies zijn "CardWare" wat betekend dat iedereen het recht
heeft om ze te kopieren en te gebruiken. Er zijn alleen enkele voorbe-
houden aan verbonden:
- Er mag geen geld worden verdient aan het kopieren. Een klein
bedrag voor de gebruikte media mag wel worden verlangt.
- Deze tekst moet het HCMenu begeleiden en zowel deze tekst als
het HCMenu dienen onveranderd te blijven.
- U (als diegene die deze kopie gebruikt) zendt mij een kaartje
om me te vertellen dat u deze software gebruikt...
De copyrights blijven in de handen van de auteur. Verder wijs ik alle aan-
sprakelijkheid voor deze software van de hand en ben ik niet aansprakelijk
voor welke schade dan ook die door mijn software zou kunnen zijn
veroorzaakt zowel direct als indirect.
Om een nieuwe versie via E-Mail toegestuurd te krijgen hoeft u alleen
een E-Mailtje aan mij te sturen. Zet er wel het versie nummer van de
door u gebruikte HCMenu bij.
Voor bugs, ideeen, vragen o.i.d.ben ik op onderstaand adres te bereiken...
E-Mail: eto@icns.nl
WWW: http://www.icns.nl/users/eto
ing. E. Th. van den Oosterkamp
Vijverstraat 11
4103 XX Culemborg
Nederland.
Dank voor de intresse enzo......ETO, the Unpredictable of CCCP.